package com.ruoyi.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 出入口扫码查询对象
 * 
 * @author dongdong
 * @date 2025-08-20
 */
@Data
public class ScanInOutCodeVo {

    /** 订单号 */
    private String orderNo;

    /** 订单状态：1-进行中 2-待支付 3-已支付 4-已完成 5-已取消 6-已退款 */
    private Integer orderStatus;

    /** 停车场code */
    private String parkCode;

    /** 停车场名称 */
    private String parkName;

    /** 停车区域名称 */
    private String parkAreaName;

    /** 入场闸机名称 */
    private String gateName;

    /** 车牌号码 */
    private String carNum;

    /** 入场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime entryTime;

    /** 出场时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime exitTime;

    /** 总停车分钟数 */
    private Long totalMinutes;

    /** 免费分钟数 */
    private Long freeMinutes;

    /** 计费分钟数 */
    private Long chargeMinutes;

    /** 总金额 */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal totalAmount;

    /** 优惠金额 */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal discountAmount;

    /** 实付金额 */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal actualAmount;


    /**
     * 停车场信息
     */
    /** 联系电话 */
    private String contactPhone;

    /** 收费详情 */
    private String chargeDetail;

    /** 一级标题（移动端） */
    private String firstTitle;

    /** 二级标题（移动端） */
    private String secondTitle;



    @JsonFormat(shape = JsonFormat.Shape.STRING)
    public BigDecimal getTotalAmount() {
        return totalAmount == null ? null : totalAmount.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public BigDecimal getDiscountAmount() {
        return discountAmount == null ? null : discountAmount.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public BigDecimal getActualAmount() {
        return actualAmount == null ? null : actualAmount.setScale(2, BigDecimal.ROUND_HALF_UP);
    }
}
